package cn.ljlao.common.exception;

import cn.ljlao.common.exception.ResponseCode;

/**
 * @Author: LiuZhen
 * @Created: 2020-01-09 16:40
 * @Description: 请求响应码类
 */
public enum MallResponseCode implements ResponseCode {
    /**
     * code=0：服务器已成功处理了请求。 通常，这表示服务器提供了请求的网页。
     * code=400xxxx：服务器主动抛出的业务异常
     * code=401xxxx：请求要求用户的身份认证
     * code=403xxxx：服务器理解请求客户端的请求，但是拒绝执行此请求
     * code=500xxxx：服务器错误
     */
    SUCCESS(0, "操作成功"),

    PRODUCT_UP_EXCEPTION(10001, "商品上架异常"),

    //----------------------------------------------✂----------------------------------------------//
    NO_DATA_INFO(2040001, "无数据"),

    //----------------------------------------------✂----------------------------------------------//
    DATA_TRANSFER_ERR(4000001, "传入数据异常"),

    DATE_CHECK_DAY_ERR(4000022,"传入时间大于一天,请重新选择时间查询"),


    //----------------------------------------------✂----------------------------------------------//
    REDIS_KEY_NULL_ERR(4001001,"Redis Key 不能为空"),
    REDIS_KEY_FIELD_NULL_ERR(4001002,"Redis Key 或 Field 不能为空"),
    REDIS_KEY_TIMEUNIT_NULL_ERR(4001003,"Redis Key 或 TimeUnit 不能为空"),
    REDIS_KEY_VALUE_TIMEUNIT_NULL_ERR(4001004,"Redis Key 或 Value 或 TimeUnit 不能为空"),

    //----------------------------------------------✂----------------------------------------------//
    TOKEN_ERR(4010001, "用户未登录，请重新登录"),
    TOKEN_EMPTY_ERR(4010002, "Token 不能为空"),
    SHIRO_AUTHENTICATION_ERR(4010003, "用户认证异常"),
    ACCOUNT_DELETED_ERR(4010004, "该账号已被删除，请联系系统管理员"),
    TOKEN_EXPIRED_ERR(4010005, "Token 异常,请刷新 Token"),
    NO_PERMISSION_ERR(4030001, "没有权限访问该资源"),

    //----------------------------------------------✂----------------------------------------------//
    SYSTEM_ERR(5000001, "系统异常，请稍后再试"),
    SYSTEM_QUERY_ERR(5000002,"查询超时");

    /**
     * 响应码
     */
    private int rspCode;

    /**
     * 提示
     */
    private final String msg;

    MallResponseCode(int rspCode, String msg) {
        this.rspCode = rspCode;
        this.msg = msg;
    }

    @Override
    public int getRspCode() {
        return rspCode;
    }

    @Override
    public String getMsg() {
        return msg;
    }
}
